#include <stdio.h>
#include <dos.h>
#include <string.h>
#include <conio.h>
#include <ctype.h>
#include "fechas.h"
#include "pf.h"

/** Main.c

	@author Christian Bloise / Gabriel Rode
	@version 1.0
	@since 07 Jun 2009

**/

void mostrar_menu(char texto_opcion[], char msj[])
		{
			clrscr();
			printf("%s\n\n%s",texto_opcion, msj);
		}

char menu(char opcion[], char texto_opcion[])
{ 		char op;

		mostrar_menu(texto_opcion,"Ingrese su opcion: ");
		fflush(stdin);
		scanf("%c",&op);
		while(!strchr(opcion, op))
				{
					mostrar_menu(texto_opcion,"Opcion erronea; Ingresela nuevamente: ");
					fflush(stdin);
					scanf("%c",&op);
				}
		return op;
}


/* INICIO DEL PROGRAMA*/

void main(){
	char op;
	char opciones[] = "abcdefghis";
	char opciones_texto[] = "a: Ingresar fecha base"
									"\nb: Sumar dias a la fecha base"
									"\nc: Restar dias a la fecha base"
									"\nd: Mostrar la diferencia de dias entre la fecha del sistema y la fecha base"
									"\ne: Mostrar el dia de la semana de la fecha base"
									"\nf: Mostrar fecha base en formato juliano"
									"\ng: Cargar vector de fechas"
									"\nh: Mostrar vector de fechas"
									"\ni: Ordenar cronologicamente el vector de fechas"
									"\ns: Salir";

	t_fecha fb;			//  Fecha base
	t_fecha vf[4]; 	//  Vector de fechas
	int n = 0;			//  Cant elem del vector
	int maxelem = 4;  //  Max cant de elem del vector

	//t_fecha vf[4] = {12,2,1990, 3,8,2009, 12,5,2003, 30,9,2007}; 	//  Vector de fechas (para pruebas)

   obtener_fecha_del_sistema(&fb);

	do{
			op=menu(opciones, opciones_texto);
			switch(op)
			 {
				case 'a': ingresar_fecha_base(&fb);
							 break;
				case 'b': sumar_dias_a_fb(&fb);
							 break;
				case 'c': restar_dias_a_fb(&fb);
							 break;
				case 'd': dif_dias_entre_fsist_y_fb(fb);
							 break;
				case 'e': dia_de_la_semana_de_fb(fb);
							 break;
				case 'f': fb_en_juliano(fb);
							 break;
				case 'g': cargar_vector(vf,&n,maxelem);
							 break;
				case 'h': mostrar_vector(vf,n);
							 break;
				case 'i': ordenar_vector(vf,n);
						    break;
			 }

      }while(op!= 's');


		puts("\nFIN");
		fflush(stdin);
		//scanf("%*c");
}

